<?php 
/**
 * @Name UserRole
 * @Title UserRole验证器
 * @Extends app\common\validate\ValidateCore
 * @Modifiers public
 * @Auth Ghj<912524639@qq.com>
 * @Time 2018年08月09日 
 * @Site http:// www.thinkgms.com/
 */

namespace app\admin\validate;
use app\common\validate\ValidateCore ;

class UserRole extends ValidateCore{
	/*========验证规则========*/
    protected $rule =   [
		'def' => [
			'require',
			'in'=>'1,0',
			'number',
    	],
		'uid' => [
			'require',
			'length'=>'1,32',
    	],
		'group_id' => [
			'require',
			'number',
			'checkGroupId',
    	],
    ];
    
	/*========提示信息========*/
    protected $message  =   [
		'def.require'=>'[默认] 为 必填',
		'def.number'=>'[默认] 只能为 数字',
		'def.in'=>'[默认] 数据异常，不在选择范围内',
		'uid.require'=>'[用户ID] 为 必填',
		'uid.length'=>'[用户ID] 的长度只能在 1-32 个字符之间',
		'group_id.require'=>'[角色ID] 为 必填',
		'group_id.number'=>'[角色ID] 只能为 数字',
    ];
    
	/*========验证场景========*/
    protected $scene = [
		'add'=>['def','uid','group_id'],
		'edit'=>['def','uid','group_id'],
    ];

	/*========验证函数========*/
    // 自定义验证规则
    protected function checkGroupId($value,$rule,$data)
    {
		$Map = [
			['uid','=',$data['uid']],
			['group_id','=',$value],
		];
		if(array_key_exists('id',$data)){
			$Map[]=['id','<>',$data['id']];
		}
		$Count = db('AuthGroupAccess')->where($Map)->count();
        return $Count>0 ? '当前用户已经含有此角色' : true;
    }
}
